package com.bjpowernode.javase.exception;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
什么了解try..catch
    1、catch后面的小括号中的类型可以是具体的异常类型，也可以是该异常类型的父类型，最高可以写到Throwable。
    2、catch可以写多个，所以建议使用catch捕捉异常的时候，精确的一个一个的处理，这样有助于程序的测试。
    3、catch写多个的时候，从上到下，必须遵循从小到大的原则。
 */
public class ExceptionTest07 {
    public static void main(String[] args) {

        /*try{
            FileInputStream fis = new FileInputStream("F:\\postgraduate\\ana_start\\Java\\IDEA\\练习.txt");
            System.out.println("以上代码出现问题这里无法执行！");
            fis.read();
        }catch(FileNotFoundException e){//多态：IOException e = new FileNotFoundException();
            System.out.println("文件不存在");
        }catch(IOException e){
            System.out.println("读文件报错了");
        }*/

        try{
            FileInputStream fis = new FileInputStream("F:\\postgraduate\\ana_start\\Java\\IDEA\\练习.txt");

            System.out.println(100 / 0);//这个异常是运行时异常，编译阶段可以处理也可以不处理。
        }catch(FileNotFoundException | ArithmeticException |NullPointerException e){//这个是JDK8的新特征
            System.out.println("文件不存在？数学异常？空指针异常？都有可能。");
        }
        System.out.println("hello world");
    }
}
